Skip to content

Initial support for IPv6 clusters #341

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 2 commits into from

Conversation

johscheuer
Copy link
Member

@johscheuer johscheuer commented Oct 10, 2020

This PR adds the capability to manage IPv6 FDB clusters running in a Kubernetes IPv6 only cluster

With the changes I'm able to bootstrap a FDB cluster with IPv6:

$ kubectl get nodes -o wide
NAME       STATUS   ROLES    AGE   VERSION   INTERNAL-IP                          EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION   CONTAINER-RUNTIME
master     Ready    master   18h   v1.19.2   fd4a:fc40:8cfb:0:5054:ff:fea2:8107   <none>        Ubuntu 20.04.1 LTS   5.4.0-1024-kvm   containerd://1.3.3-0ubuntu2
worker-0   Ready    <none>   18h   v1.19.2   fd4a:fc40:8cfb:0:5054:ff:fe4e:fac6   <none>        Ubuntu 20.04.1 LTS   5.4.0-1024-kvm   containerd://1.3.3-0ubuntu2
worker-1   Ready    <none>   18h   v1.19.2   fd4a:fc40:8cfb:0:5054:ff:feb6:bec4   <none>        Ubuntu 20.04.1 LTS   5.4.0-1024-kvm   containerd://1.3.3-0ubuntu2
worker-2   Ready    <none>   18h   v1.19.2   fd4a:fc40:8cfb:0:5054:ff:fe4a:ebea   <none>        Ubuntu 20.04.1 LTS   5.4.0-1024-kvm   containerd://1.3.3-0ubuntu2

and the coordinators are listening on the IPv6 addresses:

fdb> coordinators
Cluster description: sample_cluster
Cluster coordinators (3): [fd44:fe56:7891:2f3a:901a:62f2:12d3:88c2]:4500,[fd44:fe56:7891:2f3a:9905:f003:c7bd:fb0d]:4500,[fd44:fe56:7891:2f3a:fd43:e24:a84c:2b37]:4500
Type `help coordinators' to learn how to change this information.

the cluster is healthy and can be used:

 kubectl get fdb
NAME             GENERATION   RECONCILED   HEALTHY
sample-cluster   1                         true

There are some minor issues with bouncing the processes that will be fixed before we can merge these changes.

Fixes: #85 -> I would create an additional issue fur dual-stack and the transition from an IPv4 cluster to an IPv6 (or dual-stack) cluster.

  • run pytest in github actions
  • Open issue for dual-stack support
  • Update docs
  • Fix failing tests
  • Fix bouncing processes (process address parsing is broken)

@johscheuer
Copy link
Member Author

It probably makes the most sense to refactor addresses []string to addresses []ProcessAddress in order to prevent a lot of parsing in the controller.

@johscheuer
Copy link
Member Author

Given the current size of the PR I would open an additional PR for adding a GitHub action running pytest.

To document the current limitation (either IPv4 or IPv6 and no transition between IPv4 and IPv6 since this would require dual-stack) for the IP versions I would prefer https://github.com/FoundationDB/fdb-kubernetes-operator/blob/master/docs/compatibility.md as the right place or is there a better place @brownleej ?

@brownleej
Copy link
Member

I think the user manual is the best place to document limitations like that.

@johscheuer
Copy link
Member Author

I close this for now and hopefully I can finish this in the future.

@johscheuer johscheuer closed this Jan 19, 2021
@johscheuer johscheuer deleted the add-ipv6-support branch December 15, 2021 20:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Running clusters with IPv6
2 participants